<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>LifeCycle</title>
    </head>
    <body>
        <div id="app">

        </div>
        <script src="my-vue.js"></script>
        <script>  
        var vm = new Vue({
            el:'#app',
            data:{msg:'hello'}
        });
        //$on监听Vue实例上的load事件，这个事件是是随意写的，可以是任何的事件名
        const listener1 = (counter)=>{
            console.log(`listener1`,counter)
        }
        const listener2 = (counter)=>{
            console.log(`listener2`,counter)
        }
        vm.$on('load',listener1);
        vm.$on('load',listener2);
        //通过$emit可以触发事件，并且可以传递参数
        vm.$emit('load',100);
        //还可以通过$off停止监听一个或多个事件,可以用来移除不必要的监听
        //如果只传一个事件名，表示要移除所有的监听函数
        //vm.$off('load');
        ///移除特定的事件监听函数
        vm.$off('load',listener1);
    </script>
    </body>
</html>